package smallfrench.moteur.biblio;

import smallfrench.moteur.interp.RObjet;

public class RClasseTache extends RClasse {


	public static final RClasseTache CLASSE = new RClasseTache();

	private RClasseTache() {
		super(new RClasse[] {RClasse.CLASSE});
	}

	@Override
	public RObjet appeler(RObjet moi, RObjet[] args) {

		switch (args.length) {

		case 0:
			break;

		case 1:
			if (args[0] instanceof RFonctionScript) {
				RFonctionScript f = (RFonctionScript) args[0];
				return new RTache(f, null);
			}
			break;

		case 2:
			RObjet a = args[1];

			if (args[0] instanceof RFonctionScript) {
				RFonctionScript f = (RFonctionScript) args[0];
				if (a instanceof ATableau) {
					ATableau t = (ATableau) a;
					return new RTache(f, t.enTableauJava());
				} else {
					return new RTache(f, new RObjet[] {a});
				}
			}
			break;

		}
		return null;
	}

	@Override
	public RChaine enChaine() {
		return new RChaine("Tache");
	}

}
